জাভাস্ক্রিপ্ট অবজেক্ট এক্সেসর (JS Object Accessor)

Web Development - জাভাস্ক্রিপ্ট (JavaScript) জাভাস্ক্রিপ্ট অবজেক্ট (JS Object) |
262
262

জাভাস্ক্রিপ্টে অবজেক্ট এক্সেসর বলতে মূলত গেটার (Getter) এবং সেটার (Setter) মেথডগুলিকে বোঝানো হয়। এগুলো অবজেক্টের প্রোপার্টি গুলোর মান পড়া এবং সেট করার জন্য ব্যবহৃত হয়, কিন্তু সরাসরি প্রোপার্টি অ্যাক্সেসের পরিবর্তে নির্দিষ্ট লজিক বা যাচাইকরণ প্রক্রিয়া যুক্ত করতে সাহায্য করে।


গেটার (Getter)

গেটার মেথড অবজেক্টের একটি প্রোপার্টির মান রিটার্ন করতে ব্যবহৃত হয়। এটি প্রোপার্টি অ্যাক্সেস করার সময় কিছু অতিরিক্ত লজিক প্রয়োগ করতে সহায়ক।

গেটার সিনট্যাক্স

const person = {
    firstName: "Alice",
    lastName: "Johnson",
    get fullName() {
        return `${this.firstName} ${this.lastName}`;
    }
};

console.log(person.fullName);  // আউটপুট: Alice Johnson

এখানে, fullName একটি গেটার মেথড যা firstName এবং lastName প্রোপার্টি থেকে পূর্ণ নাম তৈরি করে রিটার্ন করে।

গেটার এর সুবিধা

  • ডেটা এনক্যাপসুলেশন: প্রোপার্টির মান নির্দিষ্ট লজিকের মাধ্যমে রিটার্ন করতে পারে।
  • অতিরিক্ত প্রক্রিয়াকরণ: মান রিটার্ন করার আগে ডেটা প্রক্রিয়াকরণ করতে সক্ষম।
  • সহজে রিডেবল প্রোপার্টি: গেটার মেথড ব্যবহার করলে প্রোপার্টি অ্যাক্সেস আরও স্বাভাবিক ও রিডেবল হয়।

সেটার (Setter)

সেটার মেথড অবজেক্টের একটি প্রোপার্টির মান সেট করতে ব্যবহৃত হয়। এটি প্রোপার্টি আপডেট করার সময় কিছু অতিরিক্ত লজিক বা যাচাইকরণ প্রক্রিয়া প্রয়োগ করতে সাহায্য করে।

সেটার সিনট্যাক্স

const person = {
    firstName: "Alice",
    lastName: "Johnson",
    set fullName(name) {
        const parts = name.split(' ');
        this.firstName = parts[0];
        this.lastName = parts[1];
    }
};

person.fullName = "Bob Smith";
console.log(person.firstName);  // আউটপুট: Bob
console.log(person.lastName);   // আউটপুট: Smith

এখানে, fullName একটি সেটার মেথড যা পূর্ণ নাম থেকে firstName এবং lastName প্রোপার্টি আলাদা করে সেট করে।

সেটার এর সুবিধা

  • ডেটা ভ্যালিডেশন: প্রোপার্টির মান সেট করার আগে যাচাই করতে পারে।
  • ডেটা ট্রান্সফরমেশন: প্রোপার্টির মান সেট করার আগে প্রয়োজনীয় ট্রান্সফরমেশন করতে সক্ষম।
  • ডেটা ইনক্যাপসুলেশন: প্রোপার্টি সেট করার লজিকটি সংরক্ষণ করে, যা কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি করে।

গেটার এবং সেটার একসাথে ব্যবহার

গেটার এবং সেটার একসাথে ব্যবহার করে অবজেক্টের প্রোপার্টি অ্যাক্সেস এবং ম্যানিপুলেশনকে আরও শক্তিশালী ও নিয়ন্ত্রিত করা যায়।

উদাহরণ

const rectangle = {
    width: 10,
    height: 5,
    get area() {
        return this.width * this.height;
    },
    set area(value) {
        // প্রোপার্টির এলাকা সেট করার জন্য উচ্চতা নির্ধারণ করা
        this.height = value / this.width;
    }
};

console.log(rectangle.area);  // আউটপুট: 50

rectangle.area = 100;
console.log(rectangle.height); // আউটপুট: 10

এখানে, area একটি গেটার এবং সেটার মেথডের সমন্বয়ে কাজ করে। গেটার মেথড এলাকা রিটার্ন করে এবং সেটার মেথড এলাকা সেট করার সময় উচ্চতা নির্ধারণ করে।


গেটার এবং সেটার এর সীমাবদ্ধতা

  • প্রপার্টি নামের সংঘর্ষ: একই নামের গেটার এবং সেটার প্রোপার্টির জন্য ব্যবহৃত হয়, যা কখনও কখনও নামের সংঘর্ষ সৃষ্টি করতে পারে।
  • পরিস্কারতা: গেটার এবং সেটার ব্যবহার করলে কোডের কার্যকারিতা বুঝতে কিছুটা জটিল হতে পারে, বিশেষ করে নতুন ডেভেলপারদের জন্য।
  • ডিবাগিং চ্যালেঞ্জ: অতিরিক্ত লজিকের কারণে ডিবাগিং প্রক্রিয়া কিছুটা কঠিন হতে পারে।

গেটার এবং সেটার এর ব্যবহার কৌশল

ডেটা ভ্যালিডেশন

সেটার মেথড ব্যবহার করে প্রোপার্টির মান যাচাই করা যায়।

const user = {
    _age: 25,
    get age() {
        return this._age;
    },
    set age(value) {
        if (value < 0) {
            console.error("Age cannot be negative.");
        } else {
            this._age = value;
        }
    }
};

user.age = 30;
console.log(user.age);  // আউটপুট: 30

user.age = -5;          // আউটপুট: Age cannot be negative.

ডেটা ট্রান্সফরমেশন

গেটার এবং সেটার ব্যবহার করে ডেটাকে প্রয়োজন অনুযায়ী ট্রান্সফর্ম করা যায়।

const person = {
    firstName: "Alice",
    lastName: "Johnson",
    get fullName() {
        return `${this.firstName} ${this.lastName}`;
    },
    set fullName(name) {
        const parts = name.split(' ');
        this.firstName = parts[0];
        this.lastName = parts[1];
    }
};

console.log(person.fullName);  // আউটপুট: Alice Johnson

person.fullName = "Bob Smith";
console.log(person.firstName); // আউটপুট: Bob
console.log(person.lastName);  // আউটপুট: Smith

গেটার এবং সেটার এর সেরা অনুশীলন

  • প্রোপার্টির নামকরণ: প্রাইভেট প্রোপার্টি গুলোতে আন্ডারস্কোর (_) ব্যবহার করুন যাতে গেটার এবং সেটার স্পষ্টভাবে পৃথক করা যায়।
  • প্রোপার্টির লজিক সহজ রাখুন: গেটার এবং সেটার মেথডে অতিরিক্ত জটিল লজিক এড়িয়ে চলুন যাতে কোড সহজে বোঝা যায়।
  • নাম সংবেদনশীলতা: গেটার এবং সেটার মেথডের নাম স্পষ্ট এবং সংবেদনশীল রাখুন যাতে তাদের কার্যকারিতা সহজে বোঝা যায়।

সারাংশ

জাভাস্ক্রিপ্টে অবজেক্ট এক্সেসর, বিশেষ করে গেটার এবং সেটার মেথড, অবজেক্টের প্রোপার্টি অ্যাক্সেস এবং ম্যানিপুলেশনকে আরও নিয়ন্ত্রিত এবং শক্তিশালী করে তোলে। এগুলো ডেটা ভ্যালিডেশন, ডেটা ট্রান্সফরমেশন, এবং ডেটা এনক্যাপসুলেশন নিশ্চিত করতে সহায়ক। সঠিকভাবে গেটার এবং সেটার ব্যবহার করলে কোডের মান এবং রক্ষণাবেক্ষণযোগ্যতা বৃদ্ধি পায়। তবে, এগুলো ব্যবহার করার সময় কিছু সীমাবদ্ধতা এবং সতর্কতা মেনে চলা জরুরি। গেটার এবং সেটার এর মাধ্যমে অবজেক্টের প্রোপার্টি ম্যানেজমেন্ট আরও কার্যকর ও নির্ভরযোগ্য হয়, যা উন্নতমানের এবং রক্ষণাবেক্ষণযোগ্য অ্যাপ্লিকেশন তৈরিতে সহায়ক হয়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion